let mixin = {
  data() {
    return {
      showNav: false,//显示导航
      // 图片父容器高度
      bannerHeight: 600,
      screenWidth: 0,// 浏览器宽度
      requestHeader: "http://dev.api.lbxds.com",
    };
  },
  created() {
    if (process.env.NODE_ENV == "production") {
      this.requestHeader = process.env.VUE_APP_BASEURL;
      if (this.requestHeader == "https://test.api.lbxds.com") {
        this.requestHeader == "http://test.api.lbxds.com";
      }
    } else {
      this.requestHeader = "/api";
    }
  },
  mounted() {
      // 首次加载时,需要调用一次
      this.setSize();
      // 窗口大小发生改变时,调用一次
      // window.onresize = () => {
      //   this.setSize();
      // };
      window.addEventListener('resize', () => this.setSize());
  },
  methods: {
    setSize: function() {
      this.screenWidth = window.innerWidth;
      // 通过浏览器宽度(图片宽度)计算高度
      this.bannerHeight = (600 / 1550) * this.screenWidth;
      if (this.screenWidth > 750) {
        this.showNav = true;
      } else {
        this.showNav = false;
      }
    },
    //时间转换
    renderTime(date) {
      var dateee = new Date(date).toJSON();
      return new Date(+new Date(dateee) + 8 * 3600 * 1000)
        .toISOString()
        .replace(/T/g, " ")
        .replace(/\.[\d]{3}Z/, "");
    },
    goBack() {
      this.$router.back();
    },
    // 手机号验证
    verifyPhone(value) {
      let regular = /^1[3|4|5|7|8]\d{9}$/;
      if (regular.test(value)) {
        return true;
      } else {
        return false;
      }
    },
    //封装精确的获取数据类型
    getType(source) {
      return Object.prototype.toString.call(source).slice(8, -1);
    },
    //封装一个深拷贝的函数
    deepCopy(source) {
      //source 给一个资源数据，返回复制好的对象
      //1.判断如果是数组，创建一个空数组，如果是对象，创建一个对象，其他直接返回
      if (this.getType(source) === "Array") {
        var res = [];
      } else if (this.getType(source) === "Object") {
        var res = {};
      } else {
        return source;
      }
      //2.循环赋值
      for (var key in source) {
        if (this.getType(source[key]) === "Array" || "Object") {
          //如果要复制的值还是一个数组，或者是一个对象，直接等于就还是一个浅拷贝，
          res[key] = this.deepCopy(source[key]); //如果数组赋值还是一个对象
        } else {
          res[key] = source[key];
        }
      }
      return res;
    },

    // ES6 数组内对象去重
    reduceArrayObj(arr, key) {
      const hash = {};
      const newArr = arr.reduce((item, next) => {
        hash[next[key]] ? "" : (hash[next[key]] = true && item.push(next));
        return item;
      }, []);

      return newArr;
    },
  },
};
export default mixin;
